[IA64] Clean up NVRAM failure case
authorAlex Williamson <alex.williamson@hp.com>
Fri, 24 Aug 2007 21:09:14 +0000 (15:09 -0600)
committerAlex Williamson <alex.williamson@hp.com>
Fri, 24 Aug 2007 21:09:14 +0000 (15:09 -0600)
copy_from_GFW_to_nvram() in libxc forgot munmap() if NVRAM data
invalid.  Also it forgot free() and close() too.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
tools/libxc/ia64/xc_ia64_hvm_build.c

index ec5a87246a019814c3e8da65c485a192a89b982b..2a3a345c3d31263b8f04f93171499ba4c78af617 100644 (file)
@@ -684,7 +684,12 @@ copy_from_GFW_to_nvram(int xc_handle, uint32_t dom, int nvram_fd)
 
     /* Check is NVRAM data vaild */
     if ( !is_valid_address(tmp_ptr) )
+    {
+        free(pfn_list);
+        munmap(tmp_ptr, PAGE_SIZE);
+        close(nvram_fd);
         return -1;
+    }
 
     addr_from_GFW_4k_align = ((struct nvram_save_addr *)tmp_ptr)->addr;
     munmap(tmp_ptr, PAGE_SIZE);